package cn.com.myapplication;

import android.app.Activity;
import android.content.Context;
import android.hardware.display.DisplayManager;
import android.os.Bundle;
import android.view.Display;
import android.widget.TextView;


public class LoginActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);




        final TextView widthPxText = (TextView) findViewById(R.id.main_et_width_px);
        final TextView heightPxText = (TextView) findViewById(R.id.main_et_height_px);
        final TextView densityText = (TextView) findViewById(R.id.main_et_density);
        final TextView densityDpiText = (TextView) findViewById(R.id.main_et_density_dpi);
        final TextView widthDipText = (TextView) findViewById(R.id.main_et_width_dip);
        final TextView heightDipText = (TextView) findViewById(R.id.main_et_height_dip);
        StringBuilder builder = new StringBuilder();
        builder.append("硬件制造商=").append(android.os.Build.MANUFACTURER).append("\n"); //硬件制造商
        builder.append("手机品牌=").append(android.os.Build.BRAND).append("\n"); //手机品牌
        builder.append("设备名=").append(android.os.Build.DEVICE).append("\n"); //设备名
        builder.append("用户可见的手机型号=").append(android.os.Build.MODEL).append("\n"); //用户可见的手机型号
        builder.append("显示屏参数=").append(android.os.Build.DISPLAY).append("\n");//显示屏参数
        builder.append("产品名称（手机厂商）=").append(android.os.Build.PRODUCT).append("\n"); //产品名称（手机厂商）
        builder.append("设备唯一识别码=").append(android.os.Build.FINGERPRINT).append("\n");//设备唯一识别码
        builder.append("CPU的指令集=").append(android.os.Build.CPU_ABI).append("\n");//CPU的指令集
        builder.append("CPU的指令集2=").append(android.os.Build.CPU_ABI2).append("\n");//CPU的指令集2
        builder.append("修订版本列表=").append(android.os.Build.ID).append("\n");//修订版本列表
        builder.append("描述Build的标签=").append(android.os.Build.TAGS).append("\n");//描述Build的标签
        builder.append("SN=").append(android.os.Build.SERIAL).append("\n");//描述Build的标签
        ((TextView)findViewById(R.id.devices_info)).setText(builder.toString());

        int widthPx =this.getResources()
                .getDisplayMetrics().widthPixels;
        // 屏幕高度(px)
        int heightPx =this.getResources()
                .getDisplayMetrics().heightPixels;
        widthPxText.setText(widthPx + "");
        heightPxText.setText(heightPx + "");
        // 屏幕密度:指每平方英寸中的像素数,在DisplayMetrics类中，该密度值为dpi/160
        float density = this.getResources()
                .getDisplayMetrics().density;
        // 屏幕密度(dpi):指每英寸中的像素数
        float densityDpi = getResources()
                .getDisplayMetrics().densityDpi;
        densityText.setText(density + "");
        densityDpiText.setText(densityDpi + "");
        // 屏幕宽度(dip)
        int widthDip = pxToDip(this, widthPx);
        // 屏幕高度(dip)
        int heightDip = pxToDip(this, heightPx);
        widthDipText.setText(widthDip + "");
        heightDipText.setText(heightDip + "");

        initDisplay(this);

    }

    public void initDisplay(Context context) {
        RestaurantDisplayDialog displayDialog = null;
        if (displayDialog == null) {
            try {
                DisplayManager displayManager = (DisplayManager) context.getSystemService(Context.DISPLAY_SERVICE);
                Display[] displays = displayManager.getDisplays(DisplayManager.DISPLAY_CATEGORY_PRESENTATION);
                if (displays != null && displays.length != 0) {
                    if (displays[0] != null) {
                        displayDialog = new RestaurantDisplayDialog(context, displays[0]);
                        displayDialog.show();
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }


    /**
     * px值向dip值转换
     *
     * @param context
     * @param pxValue
     * @return
     */
    private int pxToDip(Context context, float pxValue) {
        float scale = context.getResources().getDisplayMetrics().density;
        return (int) (pxValue / scale + 0.5f);
    }

    /**
     * dip值向px值转换
     *
     * @param context
     * @param dipValue
     * @return
     */
    public int dipToPx(Context context, float dipValue) {
        float scale = context.getResources().getDisplayMetrics().density;
        return (int) (dipValue * scale + 0.5f);
    }
}